/**
 * 学习目标：多表单元素代码的优化
 *
 */
import React from 'react';
import ReactDOM from 'react-dom';

class App extends React.Component {
  state = {
    name: '',
    desc: '',
    city: '2',

    isSingle: false,
  };

  handleChange = (e) => {
    const { name, value, type, checked } = e.target;
    // 2. 💥使用对象的键名多态插值技术，处理键名
    this.setState({ [name]: type === 'checkbox' ? checked : value });
  };

  render() {
    // cs ：快捷键
    const { name, desc, city, isSingle } = this.state;
    return (
      <div>
        姓名：
        {/* 1. 设置name属性 */}
        {/* 💥 name的值，要和state的属性名保持一致 */}
        <input name="name" type="text" value={name} onChange={this.handleChange} />
        <br />
        描述：<textarea name="desc" value={desc} onChange={this.handleChange}></textarea>
        <br />
        城市：
        <select name="city" value={city} onChange={this.handleChange}>
          <option value="1">北京</option>
          <option value="2">上海</option>
          <option value="3">广州</option>
          <option value="4">深圳</option>
        </select>
        <br />
        {/* 🔔 checkbox它的值，是由checked属性控制 */}
        是否单身：
        <input name="isSingle" type="checkbox" checked={isSingle} onChange={this.handleChange} />
      </div>
    );
  }
}
ReactDOM.render(<App></App>, document.getElementById('root'));
